package com.lob.client.test;
import com.google.common.util.concurrent.ListenableFuture;
import com.lob.Lob;
import com.lob.client.AsyncLobClient;
import com.lob.protocol.response.AddressResponseList;
import com.ning.http.client.AsyncHandler;
import com.ning.http.client.AsyncHttpClient;
import com.ning.http.client.AsyncHttpClientConfig;
import com.ning.http.client.FluentStringsMap;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.util.concurrent.ExecutionException;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class AsyncLobClientTest extends BaseTest {
private final static String baseUrl = Lob.getBaseUrl();
@Mock private AsyncHttpClient httpClient;
@Mock private AsyncHttpClient.BoundRequestBuilder builder;
private AsyncLobClient lobClient;
@Before
public void setUp() throws Exception {
final Constructor<AsyncLobClient> ctor = AsyncLobClient.class.getDeclaredConstructor(
AsyncHttpClient.class,
String.class);
ctor.setAccessible(true);
this.lobClient = ctor.newInstance(httpClient, baseUrl);
when(httpClient.prepareGet(anyString())).thenReturn(builder);
when(builder.setQueryParams(any(FluentStringsMap.class))).thenReturn(builder);
Lob.setApiVersion("lol");
AsyncLobClient.create("lol", new AsyncHttpClientConfig.Builder().build());
}
@AfterClass
public static void tearDown() throws Exception {
Lob.setBaseUrl(baseUrl);
Lob.clearApiVersion();
}
@Test
public void closeTest() throws Exception {
lobClient.close();
}
@Test
public void closeAsynchronouslyTest() throws Exception {
lobClient.closeAsynchronously();
}
}